// backend/routes/api.js (请确保你的文件内容与此完全一致)

const express = require('express');
const router = express.Router();

// 导入所有控制器
const roomController = require('../controllers/roomController');
const guestController = require('../controllers/guestController');
const checkinController = require('../controllers/checkinController');
const consumptionController = require('../controllers/consumptionController');
const menuController = require('../controllers/menuController'); // 如果你还有菜单功能
const statsController = require('../controllers/statsController');

// --- 管理员 API 路由 ---

// 房间管理
router.post('/admin/rooms', roomController.addRoom);
router.post('/admin/rooms/import', roomController.bulkImportRooms); // 如果你的导入路径是 /admin/rooms/import
router.get('/admin/rooms', roomController.getAllRooms);
router.get('/admin/rooms/available', roomController.getAvailableRooms);
router.put('/admin/rooms/:id', roomController.updateRoom); // 假设有更新房间的功能
router.delete('/admin/rooms/:id', roomController.deleteRoom); // 假设有删除房间的功能


// 客户管理
router.post('/admin/guests', guestController.addGuest);
router.get('/admin/guests', guestController.searchGuests); // 搜索/获取所有客户
router.put('/admin/guests/:id', guestController.updateGuest);
router.delete('/admin/guests/:id', guestController.deleteGuest);


// 入住管理
router.post('/admin/checkins', checkinController.createCheckin);
router.put('/admin/checkins/:id/checkout', checkinController.checkout); // 退房
router.get('/admin/checkins', checkinController.getAllCheckins); // 获取所有入住记录 (这很可能是你报错的第37行附近)
router.get('/admin/checkins/active', checkinController.getActiveCheckins); // 获取当前入住中的记录
router.get('/admin/checkins/:id', checkinController.getCheckinById); // 获取单个入住详情 (如果需要)


// 消费管理 (管理员)
router.post('/admin/consumptions', consumptionController.addConsumption);
// 管理员通过 checkinId 查看消费明细 (与客户端使用同一个后端函数，但路径不同)
router.get('/admin/consumptions/:checkinId', consumptionController.getConsumptionsByCheckin);


// 菜单项管理 (如果需要)
router.get('/admin/menuitems', menuController.getAllMenuItems);
router.post('/admin/menuitems', menuController.addMenuItem);
router.post('/admin/menuitems/import', menuController.bulkImportMenuItems); // 如果有菜单项批量导入


// 统计与仪表盘
router.get('/admin/stats/rooms', statsController.getRoomStats); // 房间入住统计
router.get('/admin/stats/consumptions', statsController.getConsumptionStats); // 消费统计 (菜品热度)
router.get('/admin/dashboard/overview', statsController.getDashboardOverview); // 仪表盘概览
// api.js (backend)
router.post('/admin/rooms/import', roomController.bulkImportRooms);

// --- 客户端 API 路由 ---
// 注意：客户端路由通常不带 /admin 前缀

// 客户查询自己的基本信息
// getGuestByCard 函数应该在 guestController.js 中
router.get('/client/guests/:idCard', guestController.getGuestByCard); // 路径是 /client/guests/:idCard

// 客户查询自己的入住记录
// getCheckinsByGuestCard 函数应该在 checkinController.js 中
router.get('/client/checkins/:idCard', checkinController.getCheckinsByGuestCard); // 路径是 /client/checkins/:idCard

// 客户查询自己的消费记录 (基于入住ID)
// getConsumptionsByCheckin 函数应该在 consumptionController.js 中
router.get('/client/consumptions/:checkinId', consumptionController.getConsumptionsByCheckin); // 路径是 /client/consumptions/:checkinId


// 最后，导出 router 对象。这个语句只能出现一次！
module.exports = router;